/*
 * Copyright (c) 2017,安徽皖通科技股份有限公司 All rights reserved.
 */

package com.wttech.dzzf.process.constant;

import cn.com.taiji.sdk.model.comm.protocol.AbstractSdtsRequest;
import cn.com.taiji.sdk.model.comm.protocol.AbstractSdtsResponse;
import cn.com.taiji.sdk.model.comm.protocol.backlist.CardBlackListUploadRequest;
import cn.com.taiji.sdk.model.comm.protocol.backlist.CardBlackListUploadResponse;
import cn.com.taiji.sdk.model.comm.protocol.backlist.OBUBlackListUploadRequest;
import cn.com.taiji.sdk.model.comm.protocol.basics.issuer.*;
import cn.com.taiji.sdk.model.comm.protocol.transaction.*;
import cn.com.taiji.sdk.model.comm.protocol.user.*;
import cn.com.taiji.sdk.model.comm.protocol.valid.VehiclePlateCheckValidateRequest;
import cn.com.taiji.sdk.model.comm.protocol.valid.VehiclePlateCheckValidateResponse;

/**
 * 生成自测数据的表对象
 * Created by MaShibo on 2017/10/20.
 */
public enum ExecuteTable {

    ISSUER("BS_ISSUER", IssuerUploadRequest.class, IssuerUploadResponse.class, "issuer"),
    AGENCY("BS_AGENCY", AgencyUploadRequest.class, AgencyUploadResponse.class, "agency"),
    HALL("BS_HALL", HallUploadRequest.class, HallUploadResponse.class, "hall"),
    MOBILESERVICE("BS_MOBILESERVICE", MobileServiceUploadRequest.class, MobileServiceUploadResponse.class, "mobileService"),
    TERMINAL("BS_TERMINAL", TerminalUploadRequest.class, TerminalUploadResponse.class, "terminal"),
    ONLINE("BS_ONLINE", OnlineUploadRequest.class, OnlineUploadResponse.class, "online"),
    VEHICLE("BS_VEHICLE", VehicleUploadRequest.class, VehicleUploadResponse.class, "vehicle"),
    USER("BS_USER", UserUploadRequest.class, UserUploadResponse.class, "user"),
    CARD("BS_CARD", CardUploadRequest.class, CardBlackListUploadResponse.class, "card"),
    OBU("BS_OBU", OBUUploadRequest.class, OBUUploadResponse.class, "obu"),
    VEHICLEVALID("BS_VEHICLEVALID", VehiclePlateCheckValidateRequest.class, VehiclePlateCheckValidateResponse.class, "vehicleValid"),
    BALANCE("BS_BALANCE", BalanceUploadRequest.class, BalanceUploadResponse.class, "balance"),
    CARDBLACKLIST("BS_CARDBLACKLIST", CardBlackListUploadRequest.class, CardBlackListUploadResponse.class, "cardBlacklist"),
    OBUBLACKLIST("BS_OBUBLACKLIST", OBUBlackListUploadRequest.class, OBUUploadResponse.class, "obuBlacklist"),
    RECHARGE("BS_RECHARGE", RechargeUploadRequest.class, RechargeUploadResponse.class, "recharge"),
    REVERSAL("BS_REVERSAL", ReversalUploadRequest.class, ReversalUploadResponse.class, "reversal"),
    REIMBURSE("BS_REIMBURSE", ReimburseUploadRequest.class, ReimburseUploadResponse.class, "reimburse");


    private String tableName;

    private Class<? extends AbstractSdtsRequest> requestType;

    private Class<? extends AbstractSdtsResponse> responseType;

    private String storePath;

    ExecuteTable(String tableName, Class<? extends AbstractSdtsRequest> requestType,
                 Class<? extends AbstractSdtsResponse> responseType, String storePath) {
        this.tableName = tableName;
        this.requestType = requestType;
        this.responseType = responseType;
        this.storePath = storePath;
    }

    public String getTableName() {
        return tableName;
    }

    public void setTableName(String tableName) {
        this.tableName = tableName;
    }

    public Class<? extends AbstractSdtsRequest> getRequestType() {
        return requestType;
    }

    public void setRequestType(Class<? extends AbstractSdtsRequest> requestType) {
        this.requestType = requestType;
    }

    public String getStorePath() {
        return storePath;
    }

    public void setStorePath(String storePath) {
        this.storePath = storePath;
    }

    public Class<? extends AbstractSdtsResponse> getResponseType() {
        return responseType;
    }

    public void setResponseType(Class<? extends AbstractSdtsResponse> responseType) {
        this.responseType = responseType;
    }
}
